#ifndef CLOSEDOBJECT_H_
#define CLOSEDOBJECT_H_

#include "Vertex.h"
#include "Object.h"
#include "Vector2D.h"
#include "Material.h"
#include "FormMenu.h"

class ClosedObject : public Object
{
	protected:
	Vertex position;
	Vector2D * textureVertices;
	float mass;
	
	public:
	ClosedObject(TextureManager * textureManager, Vertex position);
	ClosedObject(TextureManager * textureManager, Vertex position, VertexList * vertices);
	ClosedObject(TextureManager * textureManager, float textureRotation, Vertex position, VertexList * vertices, Material * material, float mass);
	~ClosedObject();
	virtual void RemoveVertex(Vertex * vertex);
	virtual void Draw();
	virtual void TexturedDraw();
	virtual void GetHoverGroup(Mouse * mouse, VertexList * group);
	virtual char * GetTag();
	virtual bool CheckObjectHover(Mouse * mouse);
	virtual Vector2D GetRotationPoint();
	virtual void CalculatePosition();
	virtual void CalculateTextureVertices(float theta);
	virtual void SetMaterial(Material * material);
	virtual void DrawEntryPoint();
	virtual void RotateTexture(float theta);
	virtual void ViewProperties();
	virtual void HideProperties();
	virtual void CreatePropertyMenu();

};
#endif /*CLOSEDOBJECT_H_*/
